import 'dart:io';

import 'package:bruno/bruno.dart';
import 'package:common/common.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';

import '../../app_config/api_constants.dart';
import '../../global_web/global_web_page.dart';

/// 应用启动同意协议的弹窗，同意之后才能进入App
class PrivacyPolicyDialog extends StatelessWidget {
  final VoidCallback? cancelAction;
  final VoidCallback? confirmAction;
  final String? cancemText;
  final String? confirmText;

  const PrivacyPolicyDialog({
    super.key,
    this.cancemText,
    this.cancelAction,
    this.confirmText,
    this.confirmAction,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.transparent,
      child: Stack(
        children: [
          Container(
                  decoration:
                      const BoxDecoration(color: Colors.white, borderRadius: BorderRadius.all(Radius.circular(14))),
                  alignment: Alignment.topCenter)
              .marginOnly(top: 30),
          Image.asset('assets/images/splash/privacy_policy_bg.png').marginOnly(top: 30),
          Container(
              alignment: Alignment.topCenter,
              child: Image.asset('assets/images/splash/privacy_policy_icon.png', width: 93.w)),
          Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              //Title
              Container(
                decoration: const BoxDecoration(
                    borderRadius: BorderRadius.only(topLeft: Radius.circular(8), topRight: Radius.circular(8))),
                padding: const EdgeInsets.only(left: 30, right: 10, top: 5, bottom: 5),
                child: Row(
                  children: [
                    Expanded(
                      child: Text("服务协议和隐私政策".tr,
                          style: const TextStyle(fontSize: 18, color: Color(0xFF263B38)), textAlign: TextAlign.center),
                    ),
                  ],
                ),
              ),

              Container(
                width: double.infinity,
                decoration: BoxDecoration(
                  gradient: LinearGradient(colors: [
                    Colors.white.withOpacity(0),
                    Colors.white.withOpacity(0.1),
                    Colors.white.withOpacity(0.2),
                    Colors.white.withOpacity(0.3),
                    Colors.white,
                    Colors.white,
                    Colors.white,
                    Colors.white,
                    Colors.white,
                    Colors.white,
                    Colors.white,
                  ], begin: Alignment.topCenter, end: Alignment.bottomCenter),
                  borderRadius:
                      const BorderRadius.only(bottomLeft: Radius.circular(14), bottomRight: Radius.circular(14)),
                ),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    //code
                    // MyTextView(
                    //   '欢迎来到AI柚!'.tr,
                    //   fontSize: 14,
                    //   textColor: DarkThemeUtil.multiColors(KColor.black, darkColor: KColor.white),
                    //   isFontBold: true,
                    //   textAlign: TextAlign.center,
                    //   marginLeft: 18.5,
                    //   marginRight: 18.5,
                    //   marginTop: 10,
                    //   // marginBottom: 24,
                    // ),
                    ScrollConfiguration(
                        behavior: NoShadowScrollBehavior(),
                        child: SingleChildScrollView(
                          child: RichText(
                              text: TextSpan(
                            text: '尊敬的用户：\n',
                            style: const TextStyle(
                                fontSize: 14, color: Color(0xFF515C5A), fontWeight: FontWeight.w500, height: 1.4),
                            children: <TextSpan>[
                              const TextSpan(
                                  style: TextStyle(
                                      fontSize: 14, color: Color(0xFF515C5A), fontWeight: FontWeight.w500, height: 1.4),
                                  text: '欢迎使用“Ai柚app”，'),
                              TextSpan(
                                text: '《用户协议》',
                                style: const TextStyle(
                                    color: Color(0xFFFF673D), fontSize: 14, fontWeight: FontWeight.w500, height: 1.4),
                                recognizer: TapGestureRecognizer()
                                  ..onTap = () {
                                    GlobalWebPage.startInstance("用户协议与条款", ApiConstants.userAgreementUrl);
                                  },
                              ),
                              const TextSpan(text: '和'),
                              TextSpan(
                                text: '《隐私政策》',
                                style: const TextStyle(
                                    color: Color(0xFFFF673D), fontWeight: FontWeight.w500, fontSize: 14, height: 1.4),
                                recognizer: TapGestureRecognizer()
                                  ..onTap = () {
                                    GlobalWebPage.startInstance("隐私协议", ApiConstants.privacyPolicyUrl);
                                  },
                              ),
//                               const TextSpan(text: '''以及本提示的全部内容，点击同意按钮即代表您已经同意前述协议全部条款及约定。
// 1.为了保证消息的收发与记录储存，需要获取设备的存储权限
// 2.为了信息推送和信息安全，需要获取系统设备权限、手机设备信息、日志信息
// 3.为了保障Ai柚App的安全运行，根据您在软件安装及使用中授予的具体权限，我们会收集您的设备型号、设备识别码(包括DeviceID/IME/Android ID /GUID/OAID/MEID、广告ID、SIM卡手机号、IMSI、ICCID、设备序列号）、软件列表、IP地址、Mac地址信息(包括手机Mac地址和蓝牙Mac地址),用于生成脱敏的终端用户设备唯一性标识，以确保能准确进行消息推送。
// 4.为了上传图片和保存图片。我们可能会调用您的相册权限，读取/写入设备存储权限
// 5.为了恢复网络断开时的状态恢复，将会获取wifi状态权限。
// 6.未经同意我们将不会从第三方获取、共享或对外提供您的信息
// 7.您可以访问、更正、删除您的个人信息，我们提供注销方式.
// ''', style: TextStyle(fontSize: 14, color: Color(0xFF515C5A), fontWeight: FontWeight.w500, height: 1.4)),
                              const TextSpan(text: '''以及本提示的全部内容，点击同意按钮即代表您已经同意前述协议全部条款及约定。
1.为了保证消息的收发与记录储存，需要获取设备的存储权限
2.为了信息推送和信息安全，需要获取系统设备权限、手机设备信息、日志信息
3.为了上传图片和保存图片。我们可能会调用您的相册权限，读取/写入设备存储权限
4.为了恢复网络断开时的状态恢复，将会获取wifi状态权限。
5.未经同意我们将不会从第三方获取、共享或对外提供您的信息
6.您可以访问、更正、删除您的个人信息，我们提供注销方式.
7.为了让您能够实时的收到订单变化通知,APP中集成的极光推送SDK会在静默状态下收集您手机设备的信息(包含设备型号、设备识别码,软件列表,WIFI的SSID信息),请知悉。
8.为了让您能够实时的收到订单变化通知，我们使用了推送功能,其中极光推送SDK会收集您的设备型号、设备识别码(包括DeviceID/IME/Android ID /GUID/OAID/MEID、广告ID、SIM卡手机号、IMSI、ICCID、设备序列号）、软件列表、IP地址、Mac地址信息(包括手机Mac地址和蓝牙Mac地址),用于生成脱敏的终端用户设备唯一性标识,具体请参照；
''', style: TextStyle(fontSize: 14, color: Color(0xFF515C5A), fontWeight: FontWeight.w500, height: 1.4)),
                              TextSpan(
                                text: '《极光SDK隐私政策》',
                                style: const TextStyle(
                                    color: Color(0xFFFF673D), fontSize: 14, fontWeight: FontWeight.w500, height: 1.4),
                                recognizer: TapGestureRecognizer()
                                  ..onTap = () {
                                    GlobalWebPage.startInstance(
                                        "《极光SDK隐私政策》", 'https://www.jiguang.cn/license/privacy');
                                  },
                              ),
                              const TextSpan(
                                  style: TextStyle(
                                      fontSize: 14, color: Color(0xFF515C5A), fontWeight: FontWeight.w500, height: 1.4),
                                  text:
                                      '我们将严格遵守您同意的各项条款使用您的信息，以便为您更好的服务。点击“同意”意味着您自觉遵守以上协议，我们将严格保护您的个人信息，确保信息安全。我们依据最新的监管要求更新了《隐私协议》，特向您说明如下：1、基于您的后续明确授权，我们可能会获取您的位置（为您提供附近的商品、店铺、优惠政策等）信息，您有权拒绝或取消授权；2、为了防止第三方软件调用AI柚APP，Ai柚会读取您正在运行的应用列表。更多详细信息，请您点击查看完整版AI柚app'),
                              TextSpan(
                                text: '《用户协议》',
                                style: const TextStyle(
                                    color: Color(0xFFFF673D), fontSize: 14, fontWeight: FontWeight.w500, height: 1.4),
                                recognizer: TapGestureRecognizer()
                                  ..onTap = () {
                                    GlobalWebPage.startInstance("用户协议与条款", ApiConstants.userAgreementUrl);
                                  },
                              ),
                              const TextSpan(text: '和'),
                              TextSpan(
                                text: '《隐私政策》',
                                style: const TextStyle(
                                    color: Color(0xFFFF673D), fontWeight: FontWeight.w500, fontSize: 14, height: 1.4),
                                recognizer: TapGestureRecognizer()
                                  ..onTap = () {
                                    GlobalWebPage.startInstance("隐私协议", ApiConstants.privacyPolicyUrl);
                                  },
                              ),
                            ],
                          )).marginOnly(left: 29, right: 29, bottom: 24),
                        )).marginSymmetric(vertical: 10).constrained(maxHeight: 220),

                    //Buttons
                    Column(
                      children: [
                        BrnNormalButton(
                          text: '同意',
                          onTap: () {
                            onCancel();
                            confirmAction?.call();
                          },
                        ).constrained(width: double.infinity),
                        BrnNormalButton(
                          text: cancemText ?? "拒绝".tr,
                          onTap: () {
                            onCancel();
                            // cancelAction?.call();
                            // 点击按钮时，调用 SystemNavigator.pop() 方法退出应用
                            SystemNavigator.pop();
                            exit(0); // 退出应用
                          },
                        ).constrained(width: double.infinity),
                      ],
                    ),
                  ],
                ),
              ),
            ],
          ).marginOnly(top: 90),
        ],
      ),
    ).constrained(width: 295.w, height: 460).marginOnly(bottom: 60);
  }

  //取消弹框
  void onCancel() async {
    SmartDialog.dismiss();
  }
}

class NoShadowScrollBehavior extends ScrollBehavior {
  @override
  // Widget buildViewportChrome(BuildContext context, Widget child, AxisDirection axisDirection) {
  Widget buildOverscrollIndicator(BuildContext context, Widget child, ScrollableDetails details) {
    switch (getPlatform(context)) {
      case TargetPlatform.iOS:
      case TargetPlatform.macOS:
        return child;
      case TargetPlatform.android:
      case TargetPlatform.fuchsia:
      case TargetPlatform.linux:
      case TargetPlatform.windows:
        return GlowingOverscrollIndicator(
          showLeading: false,
          //不显示尾部水波纹
          showTrailing: false,
          axisDirection: AxisDirection.down,
          color: Colors.transparent,
          child: child,
        );
    }
  }
}
